package fr.univ.colloque.servlet;

import fr.univ.colloque.dao.PersonneDao;
import fr.univ.colloque.data.Personne;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class Identification extends HttpServlet
{
    // Messages d'erreur
    private static String ERR_LOGIN_ABS = "Le login est obligatoire";
    private static String ERR_MDP_ABS = "Le mot de passe est obligatoire";
    private static String ERR_IDENTIFIER_KO = "Mauvais login ou mot de passe.";

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
    {
        // Récupère les informations saisies dans le formulaire
        String login = req.getParameter("login");
        String password = req.getParameter("password");

        PersonneDao pDao = new PersonneDao();
        Personne personne = null;
        boolean erreur = false;
        List<String> listErr = new ArrayList<String>();


        if (login == null || "".equals(login.trim()))
        {
            // Le login n'est pas saisi
            erreur = true;
            listErr.add(ERR_LOGIN_ABS);
        }

        if (password == null || "".equals(password.trim()))
        {
            // Le mot de passe n'est pas saisi
            erreur = true;
            listErr.add(ERR_MDP_ABS);
        }

        if (!erreur)
        {
            personne = pDao.seConnecter(login, password);

            if (personne == null)
            {
                // Le couple (login,password) n'est pas correct
                listErr.add(ERR_IDENTIFIER_KO);
                erreur = true;
            }
        }

        if (!erreur)
        {
            // Pas d'erreur donc on redirige vers la partie protégé de l'application
            // Et on stocke en session les informations en rapport avec la personne qui vient de se connecter
            HttpSession session = req.getSession();
            session.setAttribute("user", personne);
            req.getRequestDispatcher("indexCo.jsp").forward(req, resp);
        }
        else
        {
            // Il y a au moins une erreur donc on redirige vers la page d'identification pour afficher les erreurs
            req.setAttribute("err", listErr);
            req.getRequestDispatcher("index.jsp").forward(req, resp);
        }
    }
}
